package main

import (
	"fmt"
)

func main() {
	a, b := 100, 200
	fmt.Println("交换前=", a, b) // 0xc000014088 0xc0000140a0
	fmt.Println("交换前&=",&a, &b)

	swap(&a, &b);
	fmt.Println("交换后&=",&a, &b) // 0xc000014088 0xc0000140a0
}

func swap(x *int, y*int)  {
	fmt.Println("x,y", x, y) // 地址 0xc000014088 0xc0000140a0
	fmt.Println("*x,y",*x, *y) // 值 100 200
	var temp int
	temp = *x
	*x = *y // 直接执行变量x的内存地址,将其值修改为地址y指向的值
	*y = temp // 变量y的内存地址，存储的值修改为temp
}